package com.epalmpay.service.index;

import java.util.List;

import com.epalmpay.dto.agent.AgentIndexInDTO;
import com.epalmpay.dto.agent.AgentIndexOutDTO;
import com.epalmpay.dto.agent.AgentStatisAgentDaySevenDataOutDTO;
import com.epalmpay.dto.mall.MallGoodOutDTO;
import com.epalmpay.dto.member.MemberOutDTO;
import com.epalmpay.dto.merchant.index.GroupActivityBaseOutDTO;
import com.epalmpay.dto.merchant.index.GroupIndexInDTO;
import com.epalmpay.dto.merchant.index.StatisGroupDayOutDTO;
import com.epalmpay.dto.shopindex.MemberCountOfflineOutDTO;
import com.epalmpay.dto.shopindex.ShopIndexInDTO;
import com.epalmpay.entity.*;
import com.epalmpay.entity.profit.Profit;

public interface IIndexService {

	//代理商后台
	StatisAgentDay queryAddMemberSumAgent(AgentIndexInDTO agentIndexInDTO)throws Exception;
	
	StatisAgent queryMemberCount(AgentIndexInDTO agentIndexInDTO)throws Exception;
	//终端的数量
	int queryDeviceCount(AgentIndexInDTO agentIndexInDTO)throws Exception;
	//查询售后中终端
	int queryDeviceSaleCount(AgentIndexInDTO agentIndexInDTO)throws Exception;
	//今日目前交易额
//	List<AgentStatisAgentDayOutDTO> queryDayAmount(AgentIndexInDTO agentIndexInDTO)throws Exception;
	//查询今日产生分润总额
	//ProfitAgent queryProfitAmount(AgentIndexInDTO agentIndexInDTO);
	//今日目前交易额
	TradeOffline queryTotalAmount(AgentIndexInDTO agentIndexInDTO);
	
	
	//查询本月门店交易排行(前5)
	List<AgentIndexOutDTO> queryShopAmountMonth(AgentIndexInDTO agentIndexInDTO)throws Exception;
	//本月商品销量排行（前5）
	List<MallGoodOutDTO> queryGoodCount(AgentIndexInDTO agentIndexInDTO) throws Exception;
	//查询最近7天数据
	List<AgentStatisAgentDaySevenDataOutDTO> queryAgentSevenDayData(AgentIndexInDTO agentIndexInDTO)throws Exception;

	//渠道后台首页
	//昨日新增会员数
//	StatisGroupDay queryAddMemberSumGroup(GroupIndexInDTO groupIndexInDTO)throws Exception;
	//会员总数.本月新增代理商总数和门店总数.下级代理商总数.名下门店总数.本月门店交易总额预计可得分润总额(本月分润金额)
	StatisGroup queryMemberCountGroup(GroupIndexInDTO groupIndexInDTO)throws Exception;
	//售后中终端
	int queryDeviceSaleSum(GroupIndexInDTO groupIndexInDTO)throws Exception;
	DevicePos queryDeviceSum(GroupIndexInDTO groupIndexInDTO);

	//查询今日目前交易额
	TradeOffline queryDayAmountGroup(GroupIndexInDTO groupIndexInDTO)throws Exception;
	
	//查询本月商品销量排行前5的
	List<MallGoodOutDTO> queryGoodCountGroup(GroupIndexInDTO groupIndexInDTO)throws Exception;
	//查询活动概况排行前5的
	List<GroupActivityBaseOutDTO> queryActivity(GroupIndexInDTO groupIndexInDTO);
	//查询最近7天新增的会员数 , 订单数
	List<StatisGroupDayOutDTO> querySevenDayData(GroupIndexInDTO groupIndexInDTO);
	
	TradeOffline queryCardData(ShopIndexInDTO shopIndexInDTO)throws Exception;

	TradeOffline queryScanData(ShopIndexInDTO shopIndexInDTO)throws Exception;

	TradeOffline queryWalletData(ShopIndexInDTO shopIndexInDTO)throws Exception;

	TradeOffline queryDeskCardData(ShopIndexInDTO shopIndexInDTO)throws Exception;

	OrderServiceGoodDetail queryOrderData(ShopIndexInDTO shopIndexInDTO)throws Exception;
	//线下会员数
	int queryMemberSum(ShopIndexInDTO shopIndexInDTO)throws Exception;


	int queryDevMemberSum(ShopIndexInDTO shopIndexInDTO)throws Exception;


	StatisShop queryStarSum(ShopIndexInDTO shopIndexInDTO)throws Exception;

	Shop queryShopData(ShopIndexInDTO shopIndexInDTO)throws Exception;

	List<GroupActivityBaseOutDTO> queryShopActivity(ShopIndexInDTO shopIndexInDTO)throws Exception;

	int querySum(ShopIndexInDTO shopIndexInDTO)throws Exception;



	List<MemberCountOfflineOutDTO> queryMonthMemberConsumeCount(ShopIndexInDTO shopIndexInDTO);
	List<Member> queryDevMemberCount(ShopIndexInDTO shopIndexInDTO);
	List<StatisShopDay> queryMemberMonthData(ShopIndexInDTO shopIndexInDTO);//keng

	List<OrderServiceGoodDetail> queryOrderServiceGoodDetailData(ShopIndexInDTO shopIndexInDTO);

	List<CouponUser> queryCouponUserData(ShopIndexInDTO shopIndexInDTO);




	List<OrderServiceGood> queryMonthOrderNum(ShopIndexInDTO shopIndexInDTO);

	List<TradeOffline> queryMonthOrderAmount(ShopIndexInDTO shopIndexInDTO);

	//ProfitAgent queryGroupPorfitAmount(GroupIndexInDTO groupIndexInDTO);

	TradeOffline queryMoney(ShopIndexInDTO shopIndexInDTO);

	//代理商后台预计今日产生分润总额
	Profit queryAgentProfitAmount(AgentIndexInDTO agentIndexInDTO)throws Exception;
	//渠道后台预计今日产生分润总额
	Profit queryProfitAmount(GroupIndexInDTO groupIndexInDTO)throws Exception;

	Member queryAddMemberCount(GroupIndexInDTO groupIndexInDTO);

	Agent addAgentCount(GroupIndexInDTO groupIndexInDTO);

	Shop addShopCount(GroupIndexInDTO groupIndexInDTO);

    List<Shop> queryAllShopList(Long groupId)throws Exception;

	TradeOffline queryShopTrade(Long id);

	Profit queryShopThisMonthProfit(Long id);


	List<MemberOutDTO> queryWeekAddMemberCount(GroupIndexInDTO groupIndexInDTO);

	List<OrderServiceGoodDetail> queryWeekOrderCount(GroupIndexInDTO groupIndexInDTO);

	List<OrderGoodItem> queryWeekOrderGoodCount(GroupIndexInDTO groupIndexInDTO);


	TradeOffline queryGroupTotalTradeAmount(GroupIndexInDTO groupIndexInDTO);

	Profit queryGroupProfitAmount(GroupIndexInDTO groupIndexInDTO);

	OrderServiceGoodDetail queryMonthOrderServiceAmount(ShopIndexInDTO shopIndexInDTO);

	TradeOffline queryMonthVerifyCouponCount(ShopIndexInDTO shopIndexInDTO);

	CouponUser querySendCouponCount(ShopIndexInDTO shopIndexInDTO);

    OrderServiceGoodDetail queryMonthOrderServiceGoodCount(ShopIndexInDTO shopIndexInDTO);

    OrderGoodItem queryOrderGood(ShopIndexInDTO shopIndexInDTO);

    List<OrderGoodItem> monthOrderGoodData(ShopIndexInDTO shopIndexInDTO);
}
